/**
 * https://blog.csdn.net/llianlianpay/article/details/79768890
 *
 * Hystrix是一个用于处理分布式系统的延迟和容错的开源库，在分布式系统中，许多不可避免的调用会失败，比如超时，异常等。
 * Hystrix 能够保证在一个依赖出现问题的情况下，不会倒置整体服务失败，避免级联故障，提高分布式系统的弹性。
 * “断路器” 本身是一种开关装置，当某个服务单元发生故障之后，通过断路器的故障监控（类似保险熔断），向调用方法返回一个符合预期的，可处理的被选相应（FallBack）,
 * 而不是长时间的等待或者抛出调用方法无法处理的异常，这样就保证了服务调用方的线程不会长时间，不必要地占用，从而避免了故障在分布式系统中蔓延，从而导致雪崩效应。
 *
 * Hystrix 重要概念
 * 1.服务降级  fallback
 *      服务降级是当服务器压力剧增的情况下，根据当前业务情况及流量对一些服务和页面有策略的降级，以此释放服务器资源以保证核心任务的正常运行。
 *      降级是指自己的待遇下降了，从RPC调用环节来讲，就是去访问一个本地的伪装者而不是真实的服务。
 *      当双11活动时，把无关交易的服务统统降级，如查看蚂蚁深林，查看历史订单，商品历史评论，只显示最后100条等等。
 *
 * 2.服务熔断  break
 *      服务熔断的作用类似于我们家用的保险丝，当某服务出现不可用或响应超时的情况时，为了防止整个系统出现雪崩，暂时停止对该服务的调用。
 *      服务熔断后,将会不可调用,但是会慢慢恢复调用链
 *
 * 3.服务限流  flowlimit
 *
 * 区别(服务熔断和服务降级)
 * 相同点：
 *      目的很一致，都是从可用性可靠性着想，为防止系统的整体缓慢甚至崩溃，采用的技术手段；
 * 最终表现类似，对于两者来说，最终让用户体验到的是某些功能暂时不可达或不可用；
 * 粒度一般都是服务级别，当然，业界也有不少更细粒度的做法，比如做到数据持久层（允许查询，不允许增删改）；
 * 自治性要求很高，熔断模式一般都是服务基于策略的自动触发，降级虽说可人工干预，但在微服务架构下，完全靠人显然不可能，开关预置、配置中心都是必要手段；
 * 区别：
 * 触发原因不太一样，服务熔断一般是某个服务（下游服务）故障引起，而服务降级一般是从整体负荷考虑；
 * 管理目标的层次不太一样，熔断其实是一个框架级的处理，每个微服务都需要（无层级之分），而降级一般需要对业务有层级之分（比如降级一般是从最外围服务开始）
 * 实现方式不太一样；服务降级具有代码侵入性(由控制器完成/或自动降级)，熔断一般称为自我熔断。
 *
 *
 */